A typical computer system includes some form of computer readable storage media to store data and programs, such as hard disk drives, solid state drives, optical drives, tape drives, Redundant Array of Independent Disks (RAID) devices, etc. Communications protocols for communications between computer systems and the computer readable storage media have been created and agreed upon so that a computer from one manufacturer is capable of reading and/or writing a computer readable storage media device from another manufacturer if the computer and the computer readable storage media device comply with the applicable communications protocols. One early high speed protocol for communications between a computer and a computer readable storage media device was the parallel bus based Small Computer System Interface (SCSI). A current protocol that replaces the original parallel bus based SCSI protocol is the serial based Serial Attached SCSI (SAS) protocol. While SAS is based on a serial bus and the original SCSI protocol is based on a parallel bus, the SAS protocol does retain compatibility with much of the standard SCSI command set, which helps to maintain software compatibility even though there may be significant hardware changes in the communication pathway.
One advancement for computer systems implementing SAS compatible device architectures was the addition of SAS expander physical devices. An SAS expander permits the creation of more complex interconnect topologies. An SAS expander expands the capabilities of a typical SAS controller and permits a larger number of target devices to be connected and accessed by a computer system than would be possible connecting the end devices directly to the physical ports of the SAS controller incorporated in the computer system. Two types of expander devices are currently defined in the SAS protocol, an “edge expander” and a “fanout expander.” An edge expander allows the SAS controller to communicate with additional target devices and may incorporate direct port routing and/or subtractive routing. A fanout expander may be used to connect sets of edge expanders, greatly increasing the number of potential devices that may be included in a system architecture. However, a typical fanout expander does not support subtractive routing.
Another advancement for computer systems implementing SAS compatible device architectures is the incorporation of SAS zoning into the SAS protocol. SAS zoning provides for an ability to segregate and manage physical device traffic on the SAS buses interconnecting the physical devices. The access control functionality of SAS zoning is implemented on the SAS expanders. Using SAS zoning, SAS initiators and targets may not see the entire SAS architecture (i.e., domain), but, instead, the initiators and targets may only see the portions of the SAS architecture configured to be in the zoning group that the initiators and targets have been given permission to access. In other words, by configuring zoning groups, devices may be effectively limited to access to and from other devices in the same zoning group. Accordingly, access control from SAS zoning may provide traffic segregation between hosts and resources, assist in a flexible redeployment of resources, control sharing of resources, limit/restrict types of resource access, limit the impact of topology changes in physical device architectures, and/or prevent unauthorized access from a malicious attack or due to operator error.